package ytr.android.sparrow;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

/**
 * <pre>
 * ベースクラス。
 * ログ管理や共通機能を定義する
 * </pre>
 * @author toki
 *
 */
public class SparrowBaseActivity extends Activity {

	/**
	 * 
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.i(getCommonLogTag(), "called onCreate");
	}

	/**
	 * 
	 */
	@Override
	public void onDestroy() {
		super.onDestroy();
		Log.i(getCommonLogTag(), "called onDestroy");
	}

	/**
	 * 
	 */
	@Override
	public void onStart() {
		super.onStart();
		Log.i(getCommonLogTag(), "called onStart");
	}

	/**
	 * 
	 */
	@Override
	public void onResume() {
		super.onStart();
		Log.i(getCommonLogTag(), "called onResume");
	}

	/**
	 * 
	 */
	@Override
	public void onStop() {
		super.onStop();
		Log.i(getCommonLogTag(), "called onStop");
	}

	/**
	 * 
	 */
	@Override
	public void onPause() {
		super.onPause();
		Log.i(getCommonLogTag(), "called onPause");
	}

	/**
	 * サブクラスのスタックトレースインデックス番号
	 */
	private static final int SUB_CLASS_INDEX = 4;

	/**
	 * 
	 */
	public String getCommonLogTag() {
		return getPackageName() +  getSubClassInfo() + ":";
	}
	
	/**
	 * <pre>
	 * サブクラスの呼び出しメソッド情報取得。
	 * スタックトレースから情報を取得する
	 * </pre>
	 * @return
	 */
	private String getSubClassInfo() {
		StackTraceElement stack = Thread.currentThread().getStackTrace()[SUB_CLASS_INDEX];
		return stack.getClassName() + "_" + stack.getMethodName() + "(" + stack.getLineNumber() + ")";
	}

	/**
	 * 麻雀スコア管理画面を呼び出す。
	 */
	protected void startScoreManagementActivity() {
		Intent intent = new Intent(this, ytr.android.sparrow.ScoreManagementActivity.class);
		intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		startActivity(intent);
	}

	/**
	 * 初期情報設定画面を呼び出す。
	 */
	protected void startInitSettingActivity() {
		Intent intent = new Intent(this, ytr.android.sparrow.InitSettingActivity.class);
		startActivity(intent);
	}

	/**
	 * 符計算画面を呼び出す。
	 */
	protected void startHuCalcTableActivity() {
		Intent intent = new Intent(this, ytr.android.sparrow.HuCalcTableActivity.class);
		startActivity(intent);
	}

}